맨위로가기

IBM MQ

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

IBM MQ는 IBM에서 개발한 메시지 지향 미들웨어 제품군으로, 애플리케이션 간의 안정적인 메시지 교환을 지원한다. 메시지, 큐, 큐 관리자, 채널, 리스너 등의 핵심 구성 요소를 통해 지점 간 통신 및 발행-구독 메시징을 제공하며, 다양한 API를 지원한다. 일회성 전송, 비동기 메시징, 데이터 변환 등의 주요 기능을 제공하며, 가용성을 위해 복제 데이터 큐 관리자, 큐 관리자 클러스터, 다중 인스턴스 큐 관리자 등의 솔루션을 제공한다.

더 읽어볼만한 페이지

  • 메시지 지향 미들웨어 - 마이크로소프트 비즈토크 서버
    마이크로소프트 비즈토크 서버는 다양한 시스템 통합 및 비즈니스 프로세스 자동화를 지원하는 서버 소프트웨어로, 여러 버전이 출시되었으며 어댑터, 가속기 등의 기능을 제공하고 대한민국 여러 산업 분야에서 활용되었으나 클라우드 기반 솔루션의 등장으로 입지가 변화하고 있다.
  • 메시지 지향 미들웨어 - ZeroMQ
    ZeroMQ는 다양한 메시징 패턴을 지원하고 높은 성능을 제공하는 메시지 라이브러리이다.
IBM MQ - [IT 관련 정보]에 관한 문서
기본 정보
명칭IBM MQ
종류메시지 지향 미들웨어
개발사IBM
최신 버전V9.1 (2018년 7월)
지원 운영체제크로스 플랫폼
라이선스사유 소프트웨어 (IPLA)
공식 웹사이트IBM MQ

2. 구성 요소

IBM MQ는 2000년에 윈도, 리눅스, OS/2, IBM 메인프레임 및 미드레인지, 유닉스를 포함하여 여러 플랫폼 간 메시지를 전달하는 가장 유명한 시스템이었다.[14]

IBM MQ의 핵심 구성 요소는 다음과 같다.


  • '''메시지''': 참여하는 프로그램에 의미가 있는 이진 또는 문자(ASCII 또는 EBCDIC) 데이터의 모음이다. 통신 프로토콜과 마찬가지로 전송 전에 스토리지, 라우팅 및 전달 정보가 추가되고 수신 애플리케이션으로 전달되기 전에 제거된다.
  • '''큐''': 메시지 큐는 애플리케이션에서 메시지를 저장하는 객체이다.
  • '''큐 관리자''': 메시지 큐에 대한 논리적 컨테이너를 제공하는 시스템 서비스이다. 메시지 채널을 통해 다른 큐 관리자에게 데이터를 전송한다. 메시지 지향 미들웨어에 반드시 필요한 것은 아니지만 IBM MQ의 필수 구성 요소이다. 스토리지, 타이밍 문제, 트리거링 및 데이터의 실제 이동과 직접 관련되지 않은 기타 모든 기능을 처리한다.


IBM MQ와 통합된 프로그램은 모든 플랫폼에서 일관된 애플리케이션 프로그래밍 인터페이스(API)를 사용한다.

2. 1. 큐 관리자 (Queue Manager)

큐 관리자는 메시지 큐에 대한 논리적 컨테이너를 제공하는 시스템 서비스이다.[1] 메시지 채널을 통해 다른 큐 관리자에게 데이터를 전송하는 역할을 한다.[1] 메시지 지향 미들웨어에 반드시 필요한 것은 아니지만, IBM MQ의 필수 구성 요소이다.[1] 큐 관리자는 스토리지, 타이밍 문제, 트리거링 및 데이터의 실제 이동과 직접 관련되지 않은 기타 모든 기능을 처리한다.[1]

IBM MQ의 핵심은 "큐 관리자"('''MQ Manager''', '''MQM''')이다.[2] 큐 관리자는 저장 장치를 조작하고, 타이밍 문제를 처리하며, 애플리케이션 시작을 수행하고, 기타 데이터 전송과 직접 관련이 없는 기능을 가지고 있다.[2]

큐 관리자는 동일 호스트에서 동작하는 소프트웨어와 '''바인딩(Bindings)'''이라고 하는 연결을 가지며, 네트워크를 통해 다른 호스트 상의 소프트웨어와는 '''클라이언트(Client)'''라고 하는 연결을 갖는다.[3] 동일 호스트 상의 소프트웨어와 클라이언트 연결로 연결할 수도 있다.[3] 바인딩이 더 빠르지만 클라이언트가 더 견고하며, 애플리케이션 설계를 쉽게 변경할 수 있다.[3]

큐 관리자 간의 통신은 '''채널(Channel)'''이라고 하는 다른 프로그램이 담당한다.[4] 채널은 큐 관리자와 동일한 호스트에서 동작하며, 네트워크를 통한 데이터 송수신을 담당한다.[4] TCP/IP 네트워크에서는 채널이 특정 포트에서 데이터 송수신을 수행한다.[4]

클라이언트 연결로 애플리케이션과 큐 관리자 간의 통신을 수행하는 프로그램은 리스너(Listener)라고 한다.[5] 리스너는 애플리케이션 입장에서 큐 관리자의 네트워크 인터페이스가 된다.[5] TCP/IP 네트워크에서 리스너는 특정 포트에서 "listen"한다(패킷 수신을 대기).[5]

2. 2. 메시지 (Message)

IBM MQ에서 메시지는 참여하는 프로그램 간에 의미를 가지는 이진 또는 문자(ASCII 또는 EBCDIC) 데이터의 모음이다.[14] 다른 통신 프로토콜과 마찬가지로, 전송 전에 스토리지, 라우팅 및 전달 정보가 메시지에 추가되고, 수신 애플리케이션으로 전달되기 전에 메시지에서 제거된다.

메시지는 TCP/IP와 같은 순수한 패킷 통신에 의한 전송에 의존하지 않는다. 이 때문에 송수신을 수행하는 애플리케이션 간의 결합도가 낮고, 비동기적인 운용도 가능하다. 또한 메시지는 한 번만 전송되며, 네트워크상의 문제는 모두 큐 매니저가 대응한다.

2. 3. 큐 (Queue)

메시지 큐는 애플리케이션에서 메시지를 저장하는 객체이다.[14] 큐는 메시지 큐잉에서 두 가지 구성 요소 중 하나이며, 다른 하나는 참여 프로그램에 의미가 있는 이진 또는 문자(예: ASCII 또는 EBCDIC) 데이터의 모음인 메시지이다.

큐에는 로컬 큐, 원격 큐, 클러스터 큐가 있다.

2. 3. 1. 로컬 큐 (Local Queue)

데이터가 처리 대기 상태로 저장되는 위치를 나타낸다.[1]

2. 3. 2. 원격 큐 (Remote Queue)

원격 큐는 다른 큐 관리자에 있는 큐를 나타낸다. 이들은 메시지 라우팅 메커니즘의 한 요소인 대상 큐를 정의한다.[1]

메시지는 원격 큐에 배치되고, 채널과 관련된 임시 저장 전송 큐로 이동한다. 메시지를 원격 큐에 배치하면 메시지는 원격 채널을 통해 전송된다. 전송이 성공하면 메시지는 전송 큐에서 제거된다. 메시지를 수신하면 수신 큐 관리자는 메시지를 검사하여 메시지가 자체용인지 아니면 다른 큐 관리자로 이동해야 하는지 확인한다. 수신 큐 관리자인 경우, 필요한 큐가 확인되고 큐가 존재하면 메시지는 이 큐에 배치된다. 그렇지 않으면 메시지는 데드 레터 큐에 배치된다. MQ는 다양한 통신 매체를 통해 데이터의 효율적인 전송을 관리하는 기능을 갖추고 있다. 예를 들어, 큐가 특정 깊이에 도달할 때까지 메시지를 함께 일괄 처리할 수 있다.[1]

2. 3. 3. 클러스터 큐 (Cluster Queue)

클러스터 내의 모든 큐 관리자를 통해 접근할 수 있는 큐를 나타낸다.[1]

메시지는 원격 큐에 배치되며, 채널과 관련된 임시 저장 전송 큐로 이동한다. 메시지를 원격 큐에 배치하면 메시지는 원격 채널을 통해 전송된다. 전송이 성공하면 메시지는 전송 큐에서 제거된다. 메시지를 수신하면 수신 큐 관리자는 메시지가 자체용인지 아니면 다른 큐 관리자로 이동해야 하는지 확인한다. 수신 큐 관리자인 경우, 필요한 큐가 확인되고 큐가 존재하면 메시지는 이 큐에 배치된다. 그렇지 않으면 메시지는 데드 레터 큐에 배치된다.[1]

2. 4. 채널 (Channel)

IBM MQ에서 채널(Channel) 은 큐 관리자 간 통신을 담당하는 프로그램이다.[1] 채널은 큐 관리자와 동일한 호스트에서 동작하며, 네트워크를 통해 데이터를 주고받는다.[1] 채널은 단방향 통로이므로, 데이터를 반환하려면 별도의 채널이 필요하다.[1] TCP/IP 기반 네트워크에서 채널은 특정 포트를 통해 데이터를 송수신한다.[1]

채널에는 송신 채널과 수신 채널 두 가지 유형이 있다.

2. 4. 1. 송신 채널 (Sender Channel)

정의된 대상을 가지며 특정 전송 큐(채널을 통해 전송을 대기 중인 메시지가 큐에 저장되는 메커니즘)와 연결되어 있다.[1]

2. 4. 2. 수신 채널 (Receiver Channel)

동일한 이름을 가진 송신 채널을 가진 다른 큐 관리자로부터 데이터를 수신한다.[1] 수신 채널이 메시지를 수신하면, 해당 메시지가 어느 큐 관리자와 큐로 전송될 예정인지 확인한다.[1] 통신 오류가 발생할 경우, MQ는 문제가 해결되면 자동으로 연결을 재설정할 수 있다.[1]

2. 5. 리스너 (Listener)

리스너는 애플리케이션 입장에서 큐 관리자의 네트워크 인터페이스가 된다. 리스너는 들어오는 채널로부터의 연결을 감지하고 관리한다. TCP/IP 네트워크에서 리스너는 특정 포트에서 "listen"(패킷 수신을 대기)한다.[1]

3. 메시징 유형

IBM MQ는 지점 간 통신 및 발행-구독 메시징 유형을 지원한다.[14]


  • 지점 간 통신 (Point-to-Point): 하나의 송신 애플리케이션에서 하나의 수신 애플리케이션으로 메시지를 전달하는 방식.
  • 발행-구독 (Publish-Subscribe): 발행-구독 패턴 메시징.

3. 1. 지점 간 통신 (Point-to-Point)

메시지를 하나의 송신 애플리케이션에서 하나의 수신 애플리케이션으로 전달하는 방식이다.

3. 2. 발행-구독 (Publish-Subscribe)

MQ는 지점 간 통신/피어 투 피어 및 발행-구독 메시징을 지원한다.[1]

4. API

IBM MQ는 다양한 프로그래밍 언어 및 환경에서 사용할 수 있도록 여러 API를 제공한다. IBM이 직접 지원하는 API는 다음과 같다.



타사에서 제공하여 공식적으로 지원되지는 않지만 사용 가능한 API는 다음과 같다.

  • Perl 인터페이스 (Hildo Biersma 개발, CPAN에서 사용 가능)[3]
  • Python 인터페이스 ''PyMQI'' (PyPI에서 사용 가능)[4]
  • 파워쉘[5]

4. 1. IBM MQ 인터페이스 (MQI)

IBM 메시지 큐 인터페이스(MQI)는 C, COBOL, PL/I, 자바, Rexx,[15] RPG, C++ 등 다양한 언어를 지원하는 IBM 고유의 API이다.

4. 2. Java 메시지 서비스 (JMS)

자바 메시지 서비스(JMS)는 자바 플랫폼에서 메시징 서비스를 사용하기 위한 표준 API이다.[15] IBM MQ 기능을 이용하는 방법 중 하나로, J2EE에서 표준화되었다.

4. 3. XMS

C/C++ 및 .NET 환경에서 사용 가능한 API이다.[16]

4. 4. 기타 API

IBM MQ는 다양한 프로그래밍 환경에서 사용할 수 있도록 여러 API를 지원한다.

IBM에서 직접 지원하는 API는 다음과 같다.

공식적으로 지원되지는 않지만 타사에서 제공하는 API는 다음과 같다.

  • 펄 인터페이스 (Hildo Biersma 개발): CPAN을 통해 이용 가능[17]
  • 파이썬 인터페이스 ''PyMQI'': PyPI를 통해 이용 가능[18]
  • 윈도우 파워셸[19]

5. 주요 기능

IBM MQ는 다음과 같은 주요 기능을 제공한다.


  • 다양한 API: 자바 메시지 서비스(JMS) 표준 API를 구현하며, JMS보다 먼저 개발된 자체 독점 API인 Message Queuing Interface (MQI)도 제공한다. 버전 8.0.0.4부터는 MQ Light API도 지원한다.[1]

5. 1. 일회성 전송 (Exactly-Once Delivery)

MQ는 메시지를 단 한 번만 전달한다. 이러한 서비스 품질은 메시지 손실이나 중복을 방지한다.[1]

5. 2. 비동기 메시징 (Asynchronous Messaging)

IBM MQ는 미들웨어 분석가에게 시간 종속적이지 않은 아키텍처를 구현할 수 있는 메커니즘을 제공한다. 메시지는 애플리케이션이 동시에 실행되고 있는지 여부에 관계없이 한 애플리케이션에서 다른 애플리케이션으로 전송될 수 있다. 메시지 수신 애플리케이션이 발신자가 메시지를 보낼 때 실행되지 않으면 큐 관리자는 수신자가 요청할 때까지 메시지를 보관한다. 모든 메시지의 순서는 기본적으로 메시지 우선 순위 내에서 로컬 큐에서 수신된 FIFO 순서로 유지된다.[1]

이 기술의 장점은 다음과 같다.

  • 메시지는 TCP/IP와 같은 순수한 패킷 통신에 의한 전송에 의존하지 않는다. 이 때문에 송수신을 수행하는 애플리케이션 간의 결합도가 낮고, 비동기적인 운용도 가능하다.[1]
  • 메시지는 한 번만 전송된다. 네트워크상의 문제는 모두 큐 매니저가 대응한다.[1]

5. 3. 데이터 변환 (Data Transformation)

빅 엔디안에서 리틀 엔디안, EBCDIC에서 ASCII로의 변환 등 데이터 형식을 변환하는 기능을 제공한다.[3] 이 기능은 메시지 데이터 '출구(exit)'를 통해 수행되며, 출구는 큐 관리자 호스트에서 실행되는 컴파일된 애플리케이션으로서 데이터 변환이 필요할 때 IBM MQ 소프트웨어에서 실행된다.[3]

5. 4. 메시지 기반 아키텍처 프레임워크

IBM MQ는 메시지를 수신하여 다른 애플리케이션을 실행하도록 트리거하는 기능을 제공한다.[4]

5. 5. 클러스터링 (Clustering)

여러 MQ 구현이 메시지 처리를 공유하여 부하 분산 및 가용성을 높인다.[1]

6. 통신

큐 관리자는 다음과 같은 방식으로 외부와 통신한다.[1]


  • '''바인딩''': 직접적인 소프트웨어 연결 방식이다.
  • '''네트워크 또는 "클라이언트" 연결''': 네트워크를 통해 다른 호스트에 있는 큐 관리자에 연결하는 방식이다.


하위 섹션에서 바인딩과 클라이언트 연결에 대한 자세한 설명을 제공하므로, 여기서는 간략하게 개념만 소개한다.

6. 1. 바인딩 (Bindings)

직접적인 소프트웨어 연결 방식이다. 일반적으로 더 빠르지만 큐 관리자와 동일한 물리적 호스트에서 실행되는 프로그램으로 제한된다.[1]

6. 2. 클라이언트 연결 (Client Connection)

클라이언트 연결을 사용하는 애플리케이션은 네트워크를 통해 다른 호스트에 있는 큐 관리자에 연결할 수 있다. 큐 관리자의 물리적 위치는 네트워크를 통해 접근할 수 있는 한 중요하지 않다.[1]

큐 관리자는 동일 호스트에서 동작하는 소프트웨어와 바인딩 연결을 가지며, 네트워크를 통해 다른 호스트 상의 소프트웨어와는 클라이언트 연결을 갖는다. 동일 호스트 상의 소프트웨어와 클라이언트 연결로 연결할 수도 있다. 바인딩이 더 빠르지만, 클라이언트 연결이 더 견고하며 애플리케이션 설계를 용이하게 변경할 수 있다.[1]

6. 3. 큐 관리자 간 통신

각 큐 관리자는 ''채널''을 통해 다른 큐 관리자에게 데이터를 송수신한다. 채널은 단방향이므로, 데이터를 반환하려면 두 번째 채널이 필요하다. TCP/IP 기반 네트워크에서 채널은 특정 포트를 통해 데이터를 송수신한다.

채널 유형은 다음과 같다.

  • '''송신 채널''': 특정 전송 큐(채널을 통해 전송될 메시지가 저장되는 메커니즘)와 연결되어 있으며, 정의된 대상을 가진다.
  • '''수신 채널''': 같은 이름을 가진 송신 채널이 있는 다른 큐 관리자로부터 데이터를 수신한다.


수신 채널이 메시지를 수신하면, 해당 메시지가 어느 큐 관리자와 큐로 전송될 예정인지 확인한다. 통신 오류가 발생하면, MQ는 문제가 해결될 때 자동으로 연결을 재설정할 수 있다.

''리스너''는 큐 관리자에 대한 애플리케이션의 네트워크 인터페이스이다. 리스너는 들어오는 채널로부터의 연결을 감지하고, 송신 채널과 수신 채널 간의 연결을 관리한다. TCP/IP 네트워크에서 리스너는 특정 포트에서 연결을 "수신"한다.

7. 데이터 정렬

IBM MQ에서 큐는 기본적으로 선입선출(FIFO) 방식으로 동작하지만, 메시지 순서는 송신 측이 아닌 로컬 큐에 수신되는 순서를 기준으로 정렬된다.[1] 메시지 우선순위를 지정할 수 있으며, 큐는 기본적으로 도착 순서대로 우선순위가 정해진다.[1] 메시지가 로컬에서 추가된 경우에만 큐에 순서대로 추가된다.[1] 메시지 그룹화를 통해 특정 메시지 집합의 순서를 보장할 수 있다.[1] 그 외에 순서가 중요한 경우에는 메시지에 순서 데이터를 추가하거나, 반환 큐를 통한 핸드셰이킹 메커니즘 구현이 필요할 수 있다.[1]

7. 1. FIFO (First-In, First-Out)

기본적으로 메시지는 큐에 도착한 순서대로 처리된다. 큐는 FIFO(선입선출) 방식으로 동작하지만, 메시지 순서는 송신 측에서 메시지를 커밋하는 것이 아니라 로컬 큐에서 수신되는 순서를 기준으로 정렬된다.[1] 메시지 우선순위를 지정할 수 있으며, 기본적으로 큐는 도착 순서대로 우선순위가 정해진다.[1] 메시지가 로컬에서 추가된 경우에만 큐에 순서대로 추가된다.[1] 메시지 그룹화를 사용하여 특정 메시지 집합의 순서를 보장할 수 있다.[1] 그 외에 순서가 중요한 경우, 메시지에 순서 데이터를 넣거나 반환 큐를 통해 핸드셰이킹 메커니즘을 구현하는 것은 애플리케이션의 책임이다.[1] 실제로는 간단한 구성에서 순서가 유지된다.[1]

7. 2. 우선순위 (Priority)

메시지에 우선순위를 지정하여 처리 순서를 제어할 수 있다. 기본적으로 큐는 도착 순서대로 우선순위가 정해진다. 메시지가 로컬에서 추가된 경우에만 큐에 순서대로 추가된다.[1] 메시지 그룹화를 사용하여 특정 메시지 집합의 순서를 보장할 수 있다.[1] 그 외에 순서가 중요한 경우, 메시지에 순서 데이터를 넣거나 반환 큐를 통해 핸드셰이킹 메커니즘을 구현하는 것은 애플리케이션의 책임이다.[1]

7. 3. 메시지 그룹화 (Message Grouping)

큐는 선입선출(FIFO) 방식으로 동작하지만, 메시지 순서는 송신 측에서 메시지를 커밋하는 것이 아니라 로컬 큐에서 수신되는 순서를 기준으로 정렬된다. 메시지 우선순위를 지정할 수 있으며, 기본적으로 큐는 도착 순서대로 우선순위가 정해진다. 메시지가 로컬에서 추가된 경우에만 큐에 순서대로 추가된다. 메시지 그룹화를 사용하여 특정 메시지 집합의 순서를 보장할 수 있다.[1] 그 외에 순서가 중요한 경우 메시지에 순서 데이터를 넣거나 반환 큐를 통해 핸드셰이킹 메커니즘을 구현하는 것은 애플리케이션의 책임이다.[1] 실제로는 간단한 구성에서 순서가 유지된다.[1]

8. 로그

로그는 IBM MQ 큐 관리자의 중요한 요소이다. 메시지가 큐에 들어가거나 구성이 바뀔 때, 이 데이터는 로그에 기록된다.[1] 오류가 발생하면 로그를 사용하여 손상된 객체를 복구하고 메시지를 다시 만들 수 있다.[1] 이 과정에서 '지속적' 메시지만 복구되며, "비지속적" 메시지는 손실된다.[1] 비지속적 메시지는 채널 오류 발생 시 전송이 보장되지 않는 빠른 모드로 설정된 채널을 통해 전송될 수 있다.[1]

MQ는 원형 및 선형 로깅을 모두 지원한다.[1]

8. 1. 원형 로깅 (Circular Logging)

MQ는 원형 및 선형 로깅을 모두 지원한다.[1] 원형 로깅은 로그 파일이 일정 크기에 도달하면 가장 오래된 로그부터 재사용하는 방식이다.[1] 메시지가 큐에 배치되거나 구성이 변경되면 해당 데이터도 로깅된다.[1] 오류 발생 시 로그는 손상된 객체를 다시 만들고 메시지를 재생성하는 데 사용된다.[1] 이때 '지속적' 메시지만 재생성되며, "비지속적" 메시지는 손실된다.[1] 비지속적 메시지는 채널 오류 시 전달이 보장되지 않는 고속 모드로 설정된 채널을 통해 전송될 수 있다.[1]

8. 2. 선형 로깅 (Linear Logging)

큐 관리자의 또 다른 요소는 ''로그''이다. 메시지가 큐에 배치되거나 구성이 변경되면 해당 데이터도 로깅된다. 오류가 발생할 경우 로그는 손상된 객체를 다시 만들고 메시지를 재생성하는 데 사용된다. 오류 발생 시 ''지속적'' 메시지만 재생성되며 "비지속적" 메시지는 손실된다. 비지속적 메시지는 채널 오류 시 전달이 보장되지 않는 고속 모드로 설정된 채널을 통해 전송될 수 있다.

IBM MQ는 원형 및 선형 로깅을 모두 지원하는데, 선형 로깅은 로그 파일이 계속해서 증가하며, 별도의 아카이빙 절차가 필요한 방식이다.[1]

9. 가용성

IBM MQ는 다음과 같은 다양한 고가용성 솔루션을 제공한다.[1]


  • '''복제 데이터 큐 관리자(RDQM)''': 세 대의 서버 간 동기적 복제를 통해 고가용성을 제공한다.
  • '''큐 관리자 클러스터''': 둘 이상의 큐 관리자 그룹을 클러스터로 묶어 자동으로 상호 연결하고, 큐를 공유하여 부하 분산(로드 밸런싱)과 중복성을 확보한다.
  • '''큐 공유 그룹''': z/OS 환경에서 애플리케이션이 큐 공유 그룹 내 모든 큐 관리자에 연결할 수 있도록 하여, 특정 큐 관리자에 장애가 발생해도 다른 큐 관리자가 처리를 계속할 수 있도록 한다.
  • '''다중 인스턴스 큐 관리자''': 동일한 큐 관리자의 여러 인스턴스를 구성하여, 활성 인스턴스에 오류가 발생하면 대기 인스턴스가 자동으로 작업을 이어받는다.

9. 1. 복제 데이터 큐 관리자 (RDQM)

부동 IP 주소를 공유하는 세 대의 서버 간의 동기적 복제를 제공한다.[1] 이는 분산 환경의 MQ Advanced에서만 사용 가능하다.[1]

9. 2. 큐 관리자 클러스터 (Queue Manager Cluster)

하나 이상의 컴퓨터에 있는 둘 이상의 큐 관리자 그룹은 클러스터로 정의되어 자동 상호 연결을 제공하고, 부하 분산(로드 밸런싱) 및 중복성을 위해 큐를 공유할 수 있도록 한다.[1]

9. 3. 큐 공유 그룹 (Queue Sharing Group)

z/OS 환경에서 큐 공유 그룹(Queue Sharing Group)의 애플리케이션은 해당 그룹 내의 모든 큐 관리자에 연결할 수 있다. 큐 공유 그룹의 모든 큐 관리자가 동일한 공유 큐 세트에 접근할 수 있으므로, 애플리케이션은 특정 큐 관리자의 가용성에 의존하지 않는다. 큐 공유 그룹 내 다른 모든 큐 관리자가 큐 처리를 계속할 수 있기 때문에 큐 관리자가 중단될 경우 더 높은 가용성을 제공한다.[1]

9. 4. 다중 인스턴스 큐 관리자 (Multi-Instance Queue Manager)

동일한 큐 관리자의 인스턴스가 공유 스토리지에 큐 및 메타데이터를 포함하여 두 대 이상의 컴퓨터에 구성된다. 여러 인스턴스를 시작하면 하나의 인스턴스가 활성 인스턴스가 되고 다른 인스턴스는 대기 상태가 된다. 활성 인스턴스에 오류가 발생하면 다른 컴퓨터에서 실행 중인 대기 인스턴스가 자동으로 인계받는다.[1]

10. 역사

1992년, IBM은 MQSeries라는 새로운 제품을 발표했다. 2002년에 WebSphere 제품군에 맞춰 WebSphere MQ로 이름이 변경되었으나, 약칭은 MQ로 유지되었다. 2014년에는 IBM MQ로 다시 이름이 변경되었다. MQ는 IBM 전용 시스템의 TCAM 기능을 다른 플랫폼으로 확장한 것으로, 이기종 시스템 간 통신을 위한 아키텍처를 제공한다(예: IBM, HP, Sun, Tandem). MQ는 CICS 시스템과 연동하여 다른 MQ 지원 시스템과 데이터를 주고받을 수 있으며, CICS 시스템에서 작업을 시작하거나 다른 CICS 또는 비CICS 시스템에서 작업을 시작할 수 있도록 한다.

IBM MQ는 현재 80개의 다른 환경을 지원하며 업계 최고의 메시지 보장 전달 스위칭/라우팅 제품으로 자리 잡았다.

IBM MQ의 발전 과정은 다음과 같이 요약된다.


  • MQSeries 시대: 1993년 MQSeries V1 출시 이후, 다양한 플랫폼으로 확장되며 기능이 추가되었다.
  • WebSphere MQ 시대: 2002년 WebSphere MQ로 이름이 변경된 후, SSL 지원 등 보안 기능이 강화되었다.
  • IBM MQ 시대: 2014년 IBM MQ로 이름이 변경된 후, 지속적인 기능 개선이 이루어지고 있다.


각 시대별 주요 버전 출시일은 하위 섹션에 상세히 기술되어 있다.

10. 1. MQSeries 이전

컴퓨터의 출현과 함께 IBM은 새로운 기술을 메시지 교환에 적용할 기회를 얻었다.

1960년대 초, IBM은 프로그래밍 가능한 메시지 교환 시스템인 IBM 7740 통신 제어 시스템과 IBM 7750 프로그래밍 전송 제어를 판매했다.

1964년 4월, IBM System/360과 함께 BTAM과 QTAM (기본 및 대기 원격 통신 접근 방식)과 같은 통신 접근 방식이 제공되었다. 1971년, 통신 접근 방식인 TCAM은 사용자에게 보다 진보된 형태의 메시지 교환 또는 메시지 라우팅을 제공했다. TCAM은 특히 금융 및 증권 산업에서 널리 받아들여졌다. 이는 나중에 MQ와 마찬가지로 비동기 메시징을 지원했다. TCAM 3.0은 MQ와 마찬가지로 복구를 위한 재사용 가능한 디스크 메시지 큐를 추가했다. 고급 PL/I 프로그램을 사용하여 TRANSIENT 데이터 세트(동적 메시지 큐)에 접근할 수 있었다. MQ를 사용한 비검색 READ와 마찬가지로, 임시 데이터 세트에서 메시지를 읽으면 해당 메시지가 큐에서 제거되었다.

1970년대 후반에 트랜잭션 관리 시스템이 등장했으며, 각 시스템은 업계에서 선두적인 위치를 차지하려 했다. IBM 내에서는 CICSIMS가 트랜잭션 관리의 필요성을 해결하기 위한 전략적 제품으로 선택되었다. CICS와 IMS 모두 자체적인 메시지 교환 버전을 가지고 있었는데, IMS는 프론트 엔드 큐 시스템이었고 CICS는 메시지 교환의 가능한 기반으로 Transient Data 기능을 가지고 있었다.

CICS는 1968-1971년 기간 동안 인기 있는 트랜잭션 관리 시스템으로 자리 잡았다. 메시지 처리 기능을 위해 TCAM을 채택한 사용자들은 이제 CICS와 TCAM을 함께 사용하기를 원했다. 1971년 12월, IBM은 1972년 12월에 제공될 CICS/OS-Standard 제품의 일부로 TCAM에 대한 CICS 지원을 발표했다. 관심 있는 고객에게 이는 TCAM을 메시지 처리의 강점을 위해 사용하고 TCAM 연결 터미널 또는 컴퓨터가 CICS 온라인 애플리케이션과 인터페이스할 수 있게 했다.

1973년 1월, TCAM은 CICS/OS-Standard 버전 2.3에서 계속 지원되었다. 그러나 TCAM 지원은 1973년 2월에 발표되고 1974년 6월에 제공된 CICS/VS의 초기 릴리스에서 생략되었다. 많은 CICS-TCAM 고객들은 해당 제품 방향에 만족하지 않았다.

CICS-TCAM 고객의 상당한 압력으로 인해, CICS의 TCAM 지원은 1974년 9월부터 CICS/VS 1.1 제품에서 다시 복원되었다. 이전 DCB 지원 외에도, TCAM 지원의 복원을 통해 CICS는 VTAM을 통한 TCAM 접근을 지원하기 시작했으며, 이는 ACB 지원으로도 알려져 있다. CICS TCAM ACB 지원은 1990년 CICS/ESA 버전 3 제품에서 중단되었다.

10. 2. MQSeries 시대

1993년 MQSeries V1이 출시되면서 TCAM의 기능을 IBM 외의 플랫폼에서도 사용할 수 있게 되었다.[10] 1995년에는 MQSeries V2가 출시되어 분산 시스템 플랫폼으로 확장되었고, 트리거링, 코드 변환, 우선순위, Non-Persistent 메시지 등의 기능이 추가되었다. 1997년 MQSeries V5.0이 출시되어 메시지 크기가 확장되고 C++, Java 지원이 추가되었다. 1999년 MQSeries V5.1은 클러스터링(MQ 클러스터), GUI 관리 도구(MQ 익스플로러)를 제공하였다. 2001년 MQSeries V5.2는 성능이 개선되고 Linux 지원이 추가되었다.

10. 3. WebSphere MQ 시대

2002년 WebSphere MQ V5.3이 출시되면서 MQSeries에서 이름이 변경되었고, SSL을 지원하기 시작했다.[13] 2004년에는 왕립 공학 아카데미에서 MacRobert 상을 수상했다.

2005년에 출시된 WebSphere MQ V6은 64비트를 지원하고, 이클립스 기반의 사용자 인터페이스를 제공했다. 2008년 4월에는 WebSphere MQ V7.0이 출시되어 퍼블리시/서브스크라이브 메시징 및 JMS 확장을 제공했다.

10. 4. IBM MQ 시대

2014년 5월 IBM MQ 8.0이 출시되었다.[13] 이후 2016년 6월에는 IBM MQ 9.0이 출시되었다.[9]

IBM MQ의 주요 버전 출시일은 다음과 같다.

버전 이름출시일
IBM MQ 9.4 LTS2024년 6월 18일
IBM MQ 9.3 LTS2022년 6월 23일
IBM MQ 9.2 LTS2020년 7월 23일[6]
IBM MQ 9.1 LTS2018년 7월 23일[7]
IBM MQ on IBM Cloud2018년 3월 13일 [8]
IBM MQ for HPE Nonstop 8.02017년 6월 23일
IBM MQ 9.0 LTS2016년 6월 2일 [9]
IBM MQ 8.02014년 5월 23일


11. 웹 서비스와의 관계

IBM MQ는 서비스 지향 아키텍처 구축의 기반으로 사용될 수 있다. MQ를 이용해 기존 프로그램을 기능하는 웹 서비스로 변환할 수 있다. 대규모의 이질적인 기업은 사업 부문, 기능, 거버넌스 영역을 기반으로 하는 자율적인 도메인 연합으로 나타나는데, IBM MQ는 이러한 사업 부문 간 또는 별도의 비즈니스 도메인 간의 통신 수단을 제공한다.

11. 1. IBM App Connect Enterprise

IBM App Connect Enterprise(구 IBM Integration Bus / WebSphere Message Broker)는 큐 기반 아키텍처에 대한 다양하고 강력한 확장 세트를 가능하게 한다. IBM Integration Bus를 사용하면 사용자는 WSDL 파일 지원을 갖춘 웹 서비스를 구현하여 모든 큐 기반 애플리케이션과 상호 작용할 수 있다.

참조

[1] 웹사이트 MA95: A Rexx Interface to WebSphere MQ, Version 1.0.2 https://ftpmirror.yo[...] IBM 2010-01-01
[2] 웹사이트 IBM MQ 9.4 - Developing XMS .NET applications https://www.ibm.com/[...] IBM 2024-07-02
[3] 웹사이트 MQSeries - Perl extension for MQSeries support https://metacpan.org[...]
[4] 웹사이트 PyMQI Documentation http://packages.pyth[...] 2010-09-03
[5] 웹사이트 MO74: WebSphere MQ - Windows Powershell Library https://dalelane.co.[...] IBM
[6] 웹사이트 IBM announcement of IBM MQ 9.2 https://www-01.ibm.c[...] International Business Machines (IBM) 2020-07-21
[7] 웹사이트 IBM announcement of IBM MQ 9.1 https://www.ibm.com/[...] International Business Machines (IBM) 2018-07-03
[8] 웹사이트 IBM announcement of IBM MQ on IBM Cloud https://www.ibm.com/[...] International Business Machines (IBM)
[9] 웹사이트 IBM announcement of IBM MQ 9.0 http://www.ibm.com/c[...] International Business Machines (IBM) 2016-04-19
[10] 웹사이트 MQSeries for MVS/ESA Version 1.2 https://www.ibm.com/[...] International Business Machines (IBM) 1997-07-08
[11] 웹사이트 IBM Software Support Lifecycle http://www-01.ibm.co[...]
[12] 웹사이트 IBM WebSphere MQ V7.1 is enhanced with lower cost of ownership, improved time to value, and more configurable security. http://www-01.ibm.co[...] IBM 2011-10-04
[13] 문서 IBM MQ V9.0 delivers new, more flexible delivery and support options, enhanced encryption configurations, self-service enhancements, and updates to managed file transfer capabilities http://www-01.ibm.co[...]
[14] 문서 Typically reported as ~40% market share http://www.capitalwa[...]
[15] 웹인용 MA95: A REXX interface to WebSphere MQ http://www-01.ibm.co[...] 2014-10-09
[16] 웹인용 Introducing XMS -- The IBM Message Service API http://www-128.ibm.c[...] 2007-12-06
[17] 문서 MQSeries - Perl extension for MQSeries support - search.cpan.org http://search.cpan.o[...]
[18] 웹인용 PyMQI Documentation http://packages.pyth[...] 2015-07-23
[19] 웹인용 MO74: WebSphere MQ - Windows Powershell Library http://www-1.ibm.com[...] 2007-12-06



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com